import courseData from '../../../data/course';
import cartData from '../../../data/cart';

import Render from './Render';


//管理子功能模块-课程列表
export default class Course {
  constructor(oList, observer) {
    this.oList = oList;
    this.observer = observer;
    this.courseData = courseData;
    this.cartData = cartData;

  }

  init() {
    this.formatData();
    // console.log(this.courseData);
    //此时this.courseData里所有项数据都新增字段state: 0 ，且存在购物车的那一项字段会显示state: 1

    //渲染函数需要：容器/处理好的数据/观察者observer
    new Render(this.oList, this.courseData, this.cartData, this.observer);

  }

  /**
   * 数据格式化处理
   * 情况1：当cart待报名课程有数据时，课程列表里的按钮显示为 已添加
   * 情况2：当某一项数据里有coupon字段时，看是否按需渲染视图
   * 情况3：把每一项数据都新增state: 0/1字段，来区分有没有加入购物车
   */
  formatData() {
    this.courseData = this.courseData.filter((item) => {
      //先把数据里每一项都新增state属性
      item.state = 0;

      //再遍历cart数据
      this.cartData.forEach((elem) => {
        //当courseData与cartData里某一项Id相同时，说明已经存在购物车里面
        if (item.id === elem.id) {
          //1 表示在购物车里
          item.state = 1;
        }
      });

      return true;
    });
  }

}